#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>

void sigcb1(int signum)
{
    waitpid(-1, NULL, 0);
}
void sigcb2(int signum)
{
    //在一次信号回调的时候,处理所有的信号
    //waitpid()没有子进程退出,返回0;
    while(waitpid(-1, NULL, 0) > 0);
}
int main()
{
    signal(SIGCHLD, sigcb1);  //SIGCHLD不可靠信号,只处理一次,大量的子进程退出,会使事件丢失
    pid_t pid = fork();
    if(pid == 0){
        sleep(5);
        exit(0);
    }
    //waitpid(-1, NULL, 0);
    while(1)
    {
        printf("damajiang~\n");
        sleep(1);
    }


    return 0;
}
